package com.micai.springboot.mq;

import com.micai.springboot.base.BaseConfig;
import com.micai.springboot.entity.User;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 描述：消息生产者
 * <p>
 * Author: 赵新国
 * Date: 2017/11/3 15:37
 */
@Component
public class Sender extends BaseConfig {

    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void send() {
        // ---------------------------------------------------- Direct 形式 -------------------------------------------- //
        // 在该生产者，我们会产生一个字符串，并发送到名为hello的队列中
        /*String context = "Hello " + "Rabbit MQ！";
        System.out.println("发送MQ消息 : " + context);
        this.rabbitTemplate.convertAndSend(QUEUE_KEY, context);*/

        // 发送对象，但是该对象必须实现Serializable接口
        /*User user = new User(); //实现Serializable接口
        user.setId(1L);
        user.setName("张三");
        this.rabbitTemplate.convertAndSend(QUEUE_KEY, user);*/

        // ---------------------------------------------------- Topic 形式 -------------------------------------------- //
        /*this.rabbitTemplate.convertAndSend("exchange", "topic.message", "hello, rabbit!");*/

        // -------------------------------------------- Fanout Exchange形式 ------------------------------------------- //
        this.rabbitTemplate.convertAndSend("fanoutExchange", "", "xixi,hlhdidi");// 参数2将被忽略
    }

}
